למד כיצד להשתמש בפריימוורק Laravel באופן מעשי
במדריך הקודם הסברתי איך להשתמש במערכת הניתוב של הפריימוורק,במדריך זה נלמד איך ליצור קונטרולר ולשלב אותו עם מערכת הניתוב.
אך לפני שנתחיל קצת רקע.
Laravel מבוססת על מודל שלוש השכבות [MVC - Model,View,Controller] תבנית ידועה בתחום ההנדסת תכנה והמטרה שלה היא להפריד בין שלושת השכבות
למידע נוסף על התחום ניתן לקרוא במדריך כאן - MVC
על מנת ליצור קונטרולר חדש נבצע את הפקודה -
php artisan controller:make MyController
כעט יצרנו קונטרולר חדש בשם MyController והוא ממוקם תחת app/Http/Controllers.
הפקודה make יצרה לנו כבר את הבסיס לקונטרולר,אם הכל עבד כמו שצריך אמור להיות לכם קובץ בסגנון הזה -
<?php
class MyController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
}
}
class MyController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
}
}
אני לא חושב שיש יותר מידי מה להסביר משום שהכל כבר מצוין בתיעוד.כמובן שלא חובה להשתמש בסגנון הנ"ל אך מאוד מומלץ לדבוק כמה שיותר לסטנדרטים של הפריימוורק ככה שיהיה יותר נוח לקרוא את הקוד שלכם.
אחרי שיצרנו את הבקר ניצור עכשיו את הקובץ תצוגה שמבוסס על המנוע blade.
נלך אל resources/templates ונוסיף קובץ בשם hello.blade.php
חשוב מאוד לכלול את ה .blade אחרת הוא לא ידע לפענח את הקובץ כמו שצריך.
ונכניס אליו את התוכן -
<h1>Hello World</h1>
כעט יש לנו שני דברים נוספים לעשות על מנת לראות את ה hello world.
1.לתת כתובת לנתיב
2.לכלול את הקובץ view בתוך הבקר.
אז בוא נתחיל לתת כתובת לנתיב,נפתח את app/route.php ונכניס אליו -
Route::get('hello','MyController@index');
כעט נחזיר מהמתודה index את הקובץ view שלנו בצורה הזאת -
public function index()
{
return View::make('my_view');
}
{
return View::make('my_view');
}
במידה ונפנה אל hello אנחנו אמורים לקבל על המסך Hello World.
כעט אנחנו רוצים להציג שם כל שהוא שאנחנו מקבלים מהכתובת.
אז נוסיף ל route.php -
Route::get('hello/{any}','MyController@index');
או שאפשר גם לקצר את הנתיב לשורה אחת בצורה הזאת -
Route::get('hello/{any?}','MyController@index');
כעט נשנה את המתודה index ל -
public function index($user = 'Guest')
{
return View::make('my_view')->with('name',$user);
}
{
return View::make('my_view')->with('name',$user);
}
בקוד אנחנו מקבלים את המשתנה $user מהכתובת,במידה והוא לא קיים אז אנחנו מכניסים לו Guest.
ניתן לכתוב גם בצורה הזאת -
public function index($user = 'Guest')
{
return View::make('my_view',array('name' => $user));
}
{
return View::make('my_view',array('name' => $user));
}
במידה ואתם מעבירים הרבה פרמטרים לפי דעתי עדיף ליצור מערך ובסוף לשלוח אותו בפרמטר כך -
public function index($user = 'Guest')
{
$data['name'] = $user;
return View::make('my_view')->with($data);
}
{
$data['name'] = $user;
return View::make('my_view')->with($data);
}
כעט נחליף את הקוד שיש ב my_view ל -
<h1>Hello {{{ $name }}}</h1>
אם נכנס ל hello נקבל Hello Guest
וכאשר נכנס דרך hello/laravel נקבל Hello laravel.
אוקי זה הכל להיום,במדריך הבא אני יסביר איך לשלב את המודל בתוך הקוד.
תגובות לכתבה:
כל הכבוד על המדריך, מה שמפריע לי זה שיצרת resource controller אבל כל מה שקשור בראוטינג אתה מסביר כאילו על קונטרולר בסיסי. אין התייחסות לאיך להשתמש ב resource controller בראוטינג.
לדעתי היה ברור יותר אם היית מסביר על קונטרולר רגיל והשימוש בראוטינג, מציין שיש אפשרות ליצור רסאורס קונטרולר ומראה איך להשתמש בניתוב נכון עבורו. זה היה מסדר טוב מאוד את הראש לכאלו שרק מתחילים לעבוד עם לארבל.
המטרה של המדריך היא להסביר על שלושת השכבות ובשביל לעשות את זה צריך ליצור resource controller.
על השימוש בראוטינג הסברתי כאן - http://phpguide.co.il/ניתוב עם laravel שימוש בפילטר.htm
נכון שאין שם משהו יותר מידי מתקדם,הסברתי על הבסיס ומי שהבין את המדריך כמו שצריך יוכל ללכת לתיעוד הרשמי ולהבין משם את היתר.
מתי יהיה חלק 2 ?
אני מקווה אולי עוד כמה ימים יצא לי לכתוב אותו אבל קודם אני יצטרך לסדר את הנוכחי כדי שיתאים ל laravel 5 מבחינת התיקיות.